In the operating system of a computer, input/output data are transferred over the boundary between a kernel space and a user process space.
Such a data transfer method includes a shared memory method and a memory copy method. The shared memory method stores data to be transferred in a shared memory region (which a kernel and a user process can access) and shares the stored data. The memory copy method transfers data directly from the user process space to the kernel space or from the kernel space to the user process space.
However, a related art of shared memory method has limitations in usability.
In a related art of memory copy method, a kernel accesses the address space of a user process to copy data at an arbitrary moment, and thus prevents the user process from operating efficiently. For example, when data input operation requested by a user process #2 is completed while a user process #1 is being executed, a central processing unit (CPU), in the related art of memory copy method, discontinues the execution of user process #1 and activates the address space for user process #2 thereby copying the inputted data. Accordingly, the Translation Lookaside Buffer (TLB) of user process #1 is initialized, and unnecessary content is stored in a CPU cache, reducing efficiency of the user process.